package com.jmb.api.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.*;
import lombok.Data;

/**
 * 
 * @TableName t_interface_assert
 */
@TableName(value ="t_interface_assert")
@Data
public class InterfaceAssert extends BaseEntity {

    /**
     * 断言名称
     */
    @Schema(description = "断言名称")
    @NotEmpty(message = "断言名称不能为空")
    @Size(max = 100, message = "断言长度必须小于100")
    @TableField(value = "assert_name")
    private String assertName;

    /**
     * 用例编号
     */
    @Schema(description = "用例编号")
    @NotNull(message = "用例编号不能为空")
    @TableField(value = "case_id")
    private Long caseId;

    /**
     * 提取数据类型   0json/1html/2header/3responsecode/4runtime
     */
    @Schema(description = "提取数据类型 0json/1html/2header/3responsecode/4runtime")
    @NotNull(message = "提取数据类型不能为空")
    @Max(value = 4, message = "提取数据类型必须为0~4")
    @Min(value = 0, message = "提取数据类型必须为0~4")
    @TableField(value = "type")
    private Integer type;

    /**
     * 提取表达式
     */
    @Schema(description = "提取表达式")
    @NotNull(message = "提取表达式不能为空")
    @NotEmpty(message = "提取表达式不能为空")
    @Size(max = 50, message = "提取表达式长度必须小于50")
    @TableField(value = "expression")
    private String expression;

    /**
     * 操作符0/=、1/< 、2/>、3/<=、4/>=、5/in、6/!=、7/re、8/isNull、9/notNull、10/contains、11/isEmpty、12/isNotEmpty
     */
    @Schema(description = "操作符0/=、1/< 、2/>、3/<=、4/>=、5/in、6/!=、7/re、" +
            "8/isNull、9/notNull、10/contains、11/isEmpty、12/isNotEmpty")
    @NotNull(message = "操作符不能为空")
    @Max(value = 12, message = "操作符必须为0~12")
    @Min(value = 0, message = "操作符必须为0~12")
    @TableField(value = "operator")
    private Integer operator;

    /**
     * 预期结果
     */
    @Schema(description = "预期结果")
    @Size(max = 1000, message = "预期结果长度必须小于1000")
    @TableField(value = "excepted_result")
    private String exceptedResult;

    /**
     * 排序 执行断言时按照该字段排序
     */
    @Schema(description = "排序")
    @TableField(value = "order")
    private Integer order;

}